package com.fsc.fragment;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class ImageActivity extends Activity {
	private ViewPager mViewPaper;
	private List<ImageView> images;
	private List<View> dots;
	private int currentItem;
	
	//记录上一次点的位置
	private int oldPosition = 0;
	//存放图片的id
	private int[] imageIds = new int[]{
			R.drawable.tuy,
			R.drawable.tuy,
			R.drawable.tuy,
			R.drawable.tuy

	};
	
	private ViewPagerAdapter adapter;
	private ScheduledExecutorService scheduledExecutorService;
		


	@Override
    protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_image);
		mViewPaper = (ViewPager) findViewById(R.id.viewPager);
        
      //显示的图片
    	images = new ArrayList<ImageView>();
    	for(int i = 0; i < imageIds.length; i++){
    		ImageView imageView = new ImageView(this);
    		imageView.setBackgroundResource(imageIds[i]);
    		images.add(imageView);
    	}
    	//显示的小点
    	dots = new ArrayList<View>();
    	dots.add(findViewById(R.id.v_dot1));
    	dots.add(findViewById(R.id.v_dot2));
    	dots.add(findViewById(R.id.v_dot3));
    	dots.add(findViewById(R.id.v_dot4));
    	

    	adapter = new ViewPagerAdapter();
    	mViewPaper.setAdapter(adapter);
    	
    	mViewPaper.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    		

    		@Override
    		public void onPageSelected(int position) {
    			/*title.setText(titles[position]);*/
    			dots.get(position).setBackgroundResource(R.drawable.tuy);
    			dots.get(oldPosition).setBackgroundResource(R.drawable.tuy);
    			
    			oldPosition = position;
    			currentItem = position;
    		}
    		
    		@Override
    		public void onPageScrolled(int arg0, float arg1, int arg2) {
    			
    		}
    		
    		@Override
    		public void onPageScrollStateChanged(int arg0) {
    			
    		}
    	});
 }
    /**
     * 自定义Adapter
     * @author liuyazhuang
     *
     */
    private class ViewPagerAdapter extends PagerAdapter{

    	@Override
    	public int getCount() {
    		return images.size();
    	}

    	@Override
    	public boolean isViewFromObject(View arg0, Object arg1) {
    		return arg0 == arg1;
    	}

    	@Override
    	public void destroyItem(ViewGroup view, int position, Object object) {
    		view.removeView(images.get(position));
    	}

    	@Override
    	public Object instantiateItem(ViewGroup view, int position) {
    		// TODO Auto-generated method stub
    		view.addView(images.get(position));
    		return images.get(position);
    	}
    	
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    	// Inflate the menu; this adds items to the action bar if it is present.
    	getMenuInflater().inflate(R.menu.main, menu);
    	return true;
    }

    /**
     * 利用线程池定时执行动画轮播
     */
    @Override
    protected void onStart() {
    	// TODO Auto-generated method stub
    	super.onStart();
    	scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
    	scheduledExecutorService.scheduleWithFixedDelay(
    			new ViewPageTask(), 
    			2, 
    			2, 
    			TimeUnit.SECONDS);
    }


    private class ViewPageTask implements Runnable{

    	@Override
    	public void run() {
    		currentItem = (currentItem + 1) % imageIds.length;
    		mHandler.sendEmptyMessage(0);
    	}
    }

    /**
     * 接收子线程传递过来的数据
     */
    private Handler mHandler = new Handler(){
    	public void handleMessage(android.os.Message msg) {
    		mViewPaper.setCurrentItem(currentItem);
    	};
    };
    @Override
    protected void onStop() {
    	// TODO Auto-generated method stub
    	super.onStop();
    }
}
